package org.company.ci.actions;

import java.util.ArrayList;

import org.company.ci.domain.Anaquel;
import org.company.ci.services.AnaquelService;

public class AnaquelAction extends AppSecurityActionSupport {
	
	private AnaquelService anaquelService;
	
	private Anaquel anaquel;
	
	private ArrayList<Anaquel> anaquelList;
	
	public String agregarAnaquel() throws Exception {
		if (anaquel.getNombre().isEmpty()) {
			addFieldError("anaquel.nombre", "El nombre no debe estar vacio");
			return INPUT;
		}
		
		anaquelService.saveOrEditAnaquel(anaquel);
		
		anaquel = new Anaquel();
		
		return "success";
	}
	
	public void validate(){
		clearFieldErrors();
	}
	
	public String editarAnaquel() throws Exception {
		if (!existUserSession()) {
			System.out.println("Usuario no Autorizado se redirecciona ");
			return ACCESS_DENIED;
		}
		
		Anaquel anaquelBD = anaquelService.getAnaquelById(anaquel.getIdAnaquel());
		
		setAnaquel(anaquelBD);
		
		return "success";
	}
	
	public String eliminarAnaquel(){
		try {
			anaquelService.deleteAnaquel(anaquel);
			
			anaquel = new Anaquel();
		} catch (Exception e) {
			setMessage(e.getMessage());
			return "error1";
		}
		
		return "success";
	}
	
	public String listarAnaqueles() throws Exception {
		if (!existUserSession()) {
			System.out.println("Usuario no Autorizado se redirecciona ");
			return ACCESS_DENIED;
		}
		
		anaquelList = anaquelService.getListAnaqueles();
		
		return "success";
	}
	
	public String nuevoAnaquel() throws Exception {
		if (!existUserSession()) {
			System.out.println("Usuario no Autorizado se redirecciona ");
			return ACCESS_DENIED;
		}
		
		anaquel = new Anaquel();
		
		return "success";
	}
	
	
	public String accederAnaqueles() throws Exception {
		if (!existUserSession()) {
			System.out.println("Usuario no Autorizado se redirecciona ");
			return ACCESS_DENIED;
		}
		
		return "success";
	}

	public AnaquelService getAnaquelService() {
		return anaquelService;
	}

	public void setAnaquelService(AnaquelService anaquelService) {
		this.anaquelService = anaquelService;
	}

	public Anaquel getAnaquel() {
		return anaquel;
	}

	public void setAnaquel(Anaquel anaquel) {
		this.anaquel = anaquel;
	}

	public ArrayList<Anaquel> getAnaquelList() {
		return anaquelList;
	}

	public void setAnaquelList(ArrayList<Anaquel> anaquelList) {
		this.anaquelList = anaquelList;
	}

}
